Sorry, I guess I didn't really understand the behavior you were going for. If you want to delegate handling all routes under a prefix to a subrouter, you should use PathPrefix. What the handler does once it gets there is a separate question.
Hopefully that is enough to get you going in the right direction. Here is a transcript of the calls I'm expecting you to need to handle with that routing tree:➜ curl localhost:8080/customer
➜ curl localhost:8080/customer/
➜ curl localhost:8080/customer/foo
handling ID foo
p.s. There is a more elegant way of handling paths that optionally end in a / involving some of the the mux settings, but I don't remember what they are. I encourage you to set up a simple example like the one in that gist and make all the manipulations there, then take what you've learned to your larger application. It yields a very fast turnaround cycle for testing out behavior.