merged parseExpression and normalizeRoute so the regex only runs a single time for routing. It still runs an aditional time for states