MARKER snapshot and restore
This sprint brings us the MARKER word which lets us undo word
definitions. The way it works is, you type MARKER foo and then
go about your business, defining words and variables etc. At
some future point you can type foo and it will restore the
dictionary to the state it was in before foo was created.
After foo is called, foo ceases to exist, and so do any
words that were created after it.
system.asm
This is where MARKER is defined:

MARKER creates a new word whose Code Field is JP DOMARKER.
It stashes the current hash table state in the new word’s
parameter field, then adjusts the bucket that the new word
is linked from to the state it was in before the new word
was created, so that when the new word is called, it removes
itself, and anything that was defined subsequently.
inner_interpreter.asm
Here’s the definition of DOMARKER (a helper, not a word) that
is the runtime behaviour of any words created with MARKER.
It basically just restores HERE and the hash bucket lists
from the words parameter body.
Testing

Also note that you can have multiple markers, which gives you multiple restore points:
