new front-end routing engine based on pushState