def deep_merge_hashes!(target, overwrite)
      merge_values(target, overwrite)
      merge_default_proc(target, overwrite)
      duplicate_frozen_values(target)

      target
    end
def deep_merge_hashes!(target, overwrite)
      merge_values(target, overwrite)
      merge_default_proc(target, overwrite)
      duplicate_frozen_values(target)

      target
    end
Merges a master hash with another hash, recursively.

 master_hash - the "parent" hash whose values will be overridden
 other_hash  - the other hash whose values will be persisted after the merge

 This code was lovingly stolen from some random gem:
 http://gemjack.com/gems/tartan-0.1.1/classes/Hash.html

 Thanks to whoever made it.