Route matching fails on specific characters , ;

I could not find a reason for it but , and ; are the ones breaking route matching. It's stupid really, what is so different with these characters and all the other.
```
FAIL in (route-matches-test) (:)
blam routes
expected: (= (secretary/route-matches "/:x" "/%3B") {:x ";"})
  actual: (not (= nil {:x ";"}))

FAIL in (defroute-test) (:)
dispatch! with basic routes
expected: (= (secretary/dispatch! "/users/,") {:id ","})
  actual: (not (= nil {:id ","}))
```