A:

B:

C:

Note: This won't restore state on reload (though it will gracefully revert to empty). That's because I wanted to demonstrate that the back and forward states are *not* derived from the URL.