code: func (f *FSM) beforeEventCallbacks(e *Event) error {
  	if fn, ok := f.callbacks[cKey{e.Event, callbackBeforeEvent}]; ok {
  		fn(e)
  		if e.canceled {
  			return CanceledError{e.Err}
  		}
  	}
  	if fn, ok := f.callbacks[cKey{"", callbackBeforeEvent}]; ok {
  		fn(e)
  		if e.canceled {
  			return CanceledError{e.Err}
  		}
  	}
  	return nil
  }
docs: // beforeEventCallbacks calls the before_ callbacks, first the named then the
  // general version.