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 = []