BIG improvements: - Only one array to store all the regexes, which is carefully ordered using all the information at hand - parth.store is back, just so parth.add does not add repeated paths by accident - As a consecuence, the depth is just used to order the parth.regex array making possible to do only one master regex - regex metadata is:     - cus: number of parens found on the string     - def: (path.match(paramRE) || []).length - cus     - path: a sanitized version of the path given (stripped querystring and hashes), trimmed, no repeated spaces     - depth: path.replace(boilRE, " $&").trim().split(/[ ]+/).length - parth.match does the bare minimum which is: find the index of resulting match
BIG improvements:
- Only one array to store all the regexes, which is carefully ordered using all the information at hand
- parth.store is back, just so parth.add does not add repeated paths by accident
- As a consecuence, the depth is just used to order the parth.regex array making possible to do only one master regex
- regex metadata is:
    - cus: number of parens found on the string
    - def: (path.match(paramRE) || []).length - cus
    - path: a sanitized version of the path given (stripped querystring and hashes), trimmed, no repeated spaces
    - depth: path.replace(boilRE, " $&").trim().split(/[ ]+/).length
- parth.match does the bare minimum which is: find the index of resulting match

stringparser/parth