The `Hashie::Hash#to_hash` instance method calls the class method, passing in `self`. The class method `to_hash` copies all the values from `hash` to `out` and returns that. It repeats the process recursively, each time calling `to_hash` and returning `out`. The only time `self` should be referenced is in the instance method when it passes itself to the class method. From my tests, this works -- or am I overlooking something?