me too I developed in past naif, a Ruby framework to implement a dialog AS-A state machine, literally. See slides I presented last 15 December in the Milano chatbot meetup:
talk, 15 December 2016 @ #MilanoChatbot Meetupconvcomp.it
In that case,
A dialog IS-A state machine!
where dialog states are implemented as dialog-objects (sort of instances of Ruby language dialog classes).
Modeling a dialog AS-A FSM, is still a possible area of scientific research, especially in machine-to-machine (bot-to-bot) knowledge sharing/acknowledge.
Nevertheless my side, I abandoned that approach for some reasons, but eventually my point of view, regarding practical (in nowadays business) man-machine chatbots applications, is to rise up the “level” for chatbot developers (== authors):
Dialog Authoring through scripting is the way
I experimenting scripting metalanguages as ChatScript (I actively support this open source project), because I feel that smart conversational user experiences have to be built by human authors (scriptors) with an “high-level” language that hide “low-level” stuff (as the state maintenance, data storage, etc.). BTW, you can find a bunch of my thoughts about that in my medium pages.