`Hash` does a shallow dup (since it doesn't implement `#dup` itself). I'm not really sure if it does matter that much if we do shallow dup here. I can try to write a test case though.

@tenderlove do you have any suggestion?