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