Route: percent-encoded bytes are decoded before URL is matched

Good point, I'll fix it.