func (grp *Group) Put(path string, handlers ...Handler) Router {
	return grp.Add(MethodPut, path, handlers...)
}
Put registers a route for PUT methods that replaces all current representations
of the target resource with the request payload.
package fiber
import (
	"fmt"
	"reflect"
	"sync/atomic"
)
type Group struct {
	app    *App
	prefix string
}
func (grp *Group) Mount(prefix string, fiber *App) Router {
	stack := fiber.Stack()
	for m := range stack {
		for r := range stack[m] {
			route := grp.app.copyRoute(stack[m][r])
			grp.app.addRoute(route.Method, grp.app.addPrefixToRoute(getGroupPath(grp.prefix, prefix), route))
		}
	}
	atomic.AddUint32(&grp.app.handlerCount, fiber.handlerCount)
	return grp
}
func (grp *Group) Use(args ...interface{}) Router {
	var prefix = ""
	var handlers []Handler
	for i := 0; i < len(args); i++ {
		switch arg := args[i].(type) {
		case string:
			prefix = arg
		case Handler:
			handlers = append(handlers, arg)
		default:
			panic(fmt.Sprintf("use: invalid handler %v\n", reflect.TypeOf(arg)))
		}
	}
	grp.app.register(methodUse, getGroupPath(grp.prefix, prefix), handlers...)
	return grp
}
func (grp *Group) Get(path string, handlers ...Handler) Router {
	path = getGroupPath(grp.prefix, path)
	return grp.app.Add(MethodHead, path, handlers...).Add(MethodGet, path, handlers...)
}
func (grp *Group) Head(path string, handlers ...Handler) Router {
	return grp.Add(MethodHead, path, handlers...)
}
func (grp *Group) Post(path string, handlers ...Handler) Router {
	return grp.Add(MethodPost, path, handlers...)
}