01Relax everything, again and again
Dijkstra fails with negative edges because it marks a vertex as final too early. Bellman–Ford drops the greedy marking altogether: it uses the same relaxation step, but applies it to every edge, in a fixed order, and repeats the whole sweep.
Why does that converge? Think about one shortest path s → a → b → c → d. The first sweep is guaranteed to relax s → a correctly; the second sweep then gets a → b right, the third b → c, and so on. After round k, every shortest path that uses at most k edges is correct, no matter in what order the edges are listed.
This is really dynamic programming over the number of edges, a preview of stage 10.