Subroute navigation

Dunno, leaving it on the prototype makes the class safe for subclassing, whereas this makes it is a bit more convoluted to override (would need to rewrite all the call sites to point to a new version of `_compile`). Generally try to avoid referencing the constructor by name where possible.

`this.construtor._compile` at the very least (but subclasses would still need to remember to copy it) - but what's the benefit of moving it off the prototype?