Okay, I've incorporated the suggestions and I've got it working on my Dev Server.
So the final product will use human-readable URL parameters, so if it is "?type=group" only the three Group options will be in the dropdown list. And I did something similar for the "Page" and "Personal" options. No/invalid params means it shows the whole list of account type options. Trimming the list and pre-selecting is now handled on the backend in PHP rather than on the front-end with JS.
I'll try to put this together into a PR sometime this weekend.
I guess I was confusing "endpoint" with "route" and was thinking I needed to create a whole new URL in routes with another PHP page and template. If it's just getting the URL parameters and working with them on the backend that's not a problem. I already wrote JS to do this on the client side so I'll just rewrite that in PHP.