Easy to use, flexible, extensible, compact JavaScript hash router