# Requirement change

We're adding a real API behind this thing, and `GET /widgets/:id` and `POST /widgets/:id` need to
do completely different things — one reads a widget, the other updates it. Right now every route
you register matches a path regardless of what verb it came in on, and that's no longer good
enough.

**What's needed:** a way to register a route for one specific method (GET, POST, whatever string
the caller uses), so that a request only reaches it if the method matches too. Existing routes —
the ones registered the way you already support — should keep working exactly as before: they
should still answer a request of *any* method, the way a catch-all `/health` check that doesn't
care how it's called still should.

**The case that will get tested first:** register a GET handler and a POST handler for the same
path, and prove a GET request reaches the GET handler and a POST reaches the POST one, and that
each one's handler is the only one that runs for its own request.

**The case people get wrong:** what happens when a path has a method-specific route for POST, but
someone sends a GET to that same path, and there's also an old-style route registered for that
path that takes any method. The any-method one should still answer it — that's the whole reason
old routes were exempted from this. And if nothing at all is willing to take that method, treat it
the same as any other path nothing matches — don't invent a new response code.
