READY = [<A,A,0>]

Process A:

Mark it PROCESSED

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

Process C: record A -> C

Mark it PROCESSED

Create <B,C,4> <D,C,5>

D triple is new, B triple has smaller weight

READY = [<B,C,4>, <D,C,5>]

Process B: record C -> B

Mark it PROCESSED

Create <D,B,3> delete old D triple

Process D: record B -> D

Mark it PROCESSED

D has no UNPROCESSED neighbours

READY = []