func (e *Event) Cancel(err ...error) {
	e.canceled = true
	if len(err) > 0 {
		e.Err = err[0]
	}
}
Cancel can be called in before_<EVENT> or leave_<STATE> to cancel the
current transition before it happens. It takes an optional error, which will
overwrite e.Err if set before.
package fsm
type Event struct {
	FSM *FSM
	Event string
	Src string
	Dst string
	Err error
	Args []interface{}
	canceled bool
	async bool
}