READY = [<A,`A',0>].

Process A: record `A', length 0

Mark it PROCESSED

READY = [<B,`A-B',7>,<C,`A-C',2>]

Process C: record `A-C', length 2

Mark it PROCESSED

Create <B,`A-C-B',6> <D,`A-C-D',7>

D triple is new, B triple has shorter path length.

READY = [<B,`A-C-B',6>, <D,`A-C-D',7>]

Process B: record `A-C-B', length 6

Mark it PROCESSED

Create <D,`A-C-B-D',9>, not added!

READY = [<D,`A-C-D',7>]

Process D: record `A-C-D', length 7

Mark it PROCESSED

D has no UNPROCESSED neighbours

READY = []