CompilePath no longer panics. Negative position paths supported.
Also added more test cases and did a bit of minor refactoring.