Throw error on bad path.

Maybe the whole wrapper hash idea is flawed. Might be easier to pop and
explicitly check the leading '$' and then just dive off into the real
structure. The wrapper hash is supposed to make the code more general -
but it's the subject of all the special cases.