I think we can remove the message from the body.

How about using a custom error type that has a []string with the list of allowed methods? Then there's no need for additional context variables.

I was thinking there could just be a single context key, MuxMatchErr, and then store error values in there. The values could contain both the message and the status code. For the 405 there can be an additional field for the allowed headers.