def update_dict_deep(original, new_values):
	""" Updates dict *in-place* recursively, adding new keys in depth
	instead of replacing key-value pairs on top levels like `dict.update()` does.
	Returns updated dict.
	"""
	for key in new_values:
		if key not in original:
			original[key] = new_values[key]
		elif isinstance(original[key], dict):
			update_dict_deep(original[key], new_values[key])
		else:
			original[key] = new_values[key]
	return original