class Hashie::Mash

def deep_update(other_hash, &blk)

in hash, merging each hash in the hierarchy.
Recursively merges this mash with the passed
def deep_update(other_hash, &blk)
  other_hash.each_pair do |k,v|
    key = convert_key(k)
    if regular_reader(key).is_a?(Mash) and v.is_a?(::Hash)
      regular_reader(key).deep_update(v, &blk)
    else
      value = convert_value(v, true)
      value = blk.call(key, self[k], value) if blk
      regular_writer(key, value)
    end
  end
  self
end