supports wildcards without names
add more test cases for optional segments which easily go wrong
basic functionalities for router
fix logic for test cases of router
adds more test cases for index.js