class Hash

def deep_merge(other, &block)


Recursively merges self with other hash and returns new hash.
def deep_merge(other, &block)
  dup.deep_merge!(other, &block)
end unless method_defined? :deep_merge