Simple and robust CoffeeScript/JavaScript library for undo/redo features on plain state object. Full test coverage.