code: func (sm *StateMachine) ReplayState(in *Msg) string {
  	sm.LoadState(in)
  	sm.plugin.Log.Debug("replaying state", sm.state)
  	return sm.Handlers[sm.state].OnEntry(in)
  }
docs: // ReplayState returns you to the current state's OnEntry function. This is
  // only useful when you're iterating over results in a state machine. If you're
  // reading this, you should probably be using task.Iterate() instead. If you've
  // already considered task.Iterate(), and you've decided to use this underlying
  // function instead, you should only call it when Complete returns false, like
  // so:
  //
  // Complete: func(in *dt.Msg) (bool, string) {
  //	if p.HasMemory(in, "memkey") {
  //		return true, ""
  //	}
  //	return false, p.SM.ReplayState(in)
  // }
  //
  // That said, the *vast* majority of the time you should NOT be using this
  // function. Instead use task.Iterate(), which uses this function safely.