func (r *Router) GET(path string, handle Handle) {
	r.Handle(http.MethodGet, path, handle)
}
GET is a shortcut for router.Handle(http.MethodGet, path, handle)
package httprouter
import (
	"context"
	"net/http"
	"strings"
)
type Handle func(http.ResponseWriter, *http.Request, Params)
type Param struct {
	Key   string
	Value string
}
type Params []Param
func (ps Params) ByName(name string) string {
	for i := range ps {
		if ps[i].Key == name {
			return ps[i].Value
		}
	}
	return ""
}
type paramsKey struct{}
var ParamsKey = paramsKey{}
func ParamsFromContext(ctx context.Context) Params {
	p, _ := ctx.Value(ParamsKey).(Params)
	return p
}
type Router struct {
	trees map[string]*node
	RedirectTrailingSlash bool
	RedirectFixedPath bool
	HandleMethodNotAllowed bool
	HandleOPTIONS bool
	GlobalOPTIONS http.Handler
	globalAllowed string
	NotFound http.Handler
	MethodNotAllowed http.Handler
	PanicHandler func(http.ResponseWriter, *http.Request, interface{})
}
var _ http.Handler = New()
func New() *Router {
	return &Router{
		RedirectTrailingSlash:  true,
		RedirectFixedPath:      true,
		HandleMethodNotAllowed: true,
		HandleOPTIONS:          true,
	}
}