To avoid the `hasOwnProperty` check, you could just check for undefined?
```
                for (i = 0, len = token.length; i < len; i++) {
                    if (typeof val[token[i]] === 'undefined') {
                        throw new ReferenceError('Could not find path ' + options.hash.token + ' in ' + val + ' at ' + token[i]);
                    }

                    val = val[token[i]];
                }
```