Note to others:
Undo doesn't just transition you to the previous passage and undo variables changes.
1. Undo winds the History system backwards one step which means:
a. The current passage (and all it's state changes) is removed from History as if the passage was never visited in the first place, in the OP's example this means Passage C was never seen.
b. The previous passage is also removed from History and re-executed, in the OP's example this means Passage B was only visited one time.
History Path before Undo was used:
Passage A -> Passage B -> Passage C
History Path after Undo was used:
Passage A -> Passage B
2. Chapel's solution transitions the Reader/Player forward to Passage A, this means:
a. Passage A was visited twice.
b. Passage B & C were visited once.
c. All the state changes done in Passages B & C are not undone.
History Path before 'Custom' Undo was used:
Passage A -> Passage B -> Passage C
History Path after 'Custom' Undo was used:
Passage A -> Passage B -> Passage C -> Passage A
@Chapel: The 'side-bar' and its children are actually part of the current passage, so they are recreated each time passage traversal occurs.