The "shrink" command just works by remembering all previous iterations, but I *did* realize after I implemented it that it *is* reversible. (Just remove every pair of dominos pointing apart, move everything backwards, and fill the remaining spaces with pairs of dominos pointing towards each other, in either orientation.)