func (s *Item) Post(path string, fn http.HandlerFunc, c ...alice.Constructor) {
	s.record("POST", path)
	s.r.Post(path, alice.New(c...).ThenFunc(fn).(http.HandlerFunc))
}
Post is a shortcut for router.Handle("POST", path, handle).
package router
import (
	"fmt"
	"net/http"
	"github.com/justinas/alice"
)
func (s *Item) Chain(c ...alice.Constructor) []alice.Constructor {
	return c
}
func (s *Item) ChainHandler(h http.Handler, c ...alice.Constructor) http.Handler {
	return alice.New(c...).Then(h)
}
func (s *Item) record(method, path string) {
	s.listMutex.Lock()
	s.routeList = append(s.routeList, fmt.Sprintf("%v\t%v", method, path))
	s.listMutex.Unlock()
}
func (s *Item) RouteList() []string {
	s.listMutex.RLock()
	list := s.routeList
	s.listMutex.RUnlock()
	return list
}
func (s *Item) Delete(path string, fn http.HandlerFunc, c ...alice.Constructor) {
	s.record("DELETE", path)
	s.r.Delete(path, alice.New(c...).ThenFunc(fn).(http.HandlerFunc))
}
func (s *Item) Get(path string, fn http.HandlerFunc, c ...alice.Constructor) {
	s.record("GET", path)
	s.r.Get(path, alice.New(c...).ThenFunc(fn).(http.HandlerFunc))
}
func (s *Item) Patch(path string, fn http.HandlerFunc, c ...alice.Constructor) {
	s.record("PATCH", path)
	s.r.Patch(path, alice.New(c...).ThenFunc(fn).(http.HandlerFunc))
}