code: func (mx *Mux) ServeHTTP(w http.ResponseWriter, r *http.Request) {
  	// Ensure the mux has some routes defined on the mux
  	if mx.handler == nil {
  		mx.NotFoundHandler().ServeHTTP(w, r)
  		return
  	}
  
  	// Check if a routing context already exists from a parent router.
  	rctx, _ := r.Context().Value(RouteCtxKey).(*Context)
  	if rctx != nil {
  		mx.handler.ServeHTTP(w, r)
  		return
  	}
  
  	// Fetch a RouteContext object from the sync pool, and call the computed
  	// mx.handler that is comprised of mx.middlewares + mx.routeHTTP.
  	// Once the request is finished, reset the routing context and put it back
  	// into the pool for reuse from another request.
  	rctx = mx.pool.Get().(*Context)
  	rctx.Reset()
  	rctx.Routes = mx
  	r = r.WithContext(context.WithValue(r.Context(), RouteCtxKey, rctx))
  	mx.handler.ServeHTTP(w, r)
  	mx.pool.Put(rctx)
  }
docs: // ServeHTTP is the single method of the http.Handler interface that makes
  // Mux interoperable with the standard library. It uses a sync.Pool to get and
  // reuse routing contexts for each request.