This method has the same semantics of update,except it
does not modify the receiver but rather returns a new
hash with indifferent access with the result of the merge.
# File activesupport/lib/active_support/hash_with_indifferent_access.rb, line 265
def merge(*hashes, &block)
dup.update(*hashes, &block)
end