add history API/hashChange support in router