Isn't deep_merge a recursive merge? In Ruby stdlib [Hash#merge](http://www.ruby-doc.org/core-1.8.7/Hash.html#method-i-merge) doesn't look like union:
>Returns a new hash containing the contents of other_hash and the contents of hsh, **overwriting** entries in hsh with duplicate keys with those from other_hash.