Variant: doubly recursive

The step can even mention reach twice, joining one journey after another:

Still the same rounds, the same eight pairs.

Two recursive calls, and it still terminates, even with the cycle: bottom-up evaluation only ever adds tuples, and the relation must be finite.