Bellman-Ford handles what Dijkstra can't: negative edge weights. It relaxes every edge |V|−1 times, guaranteeing the shortest path distances converge, then does one more pass — if anything still improves, a negative-weight cycle exists. That's why RIP, EIGRP, and every currency-arbitrage detector run Bellman-Ford instead of Dijkstra.
source updated this pass reached in negative cycle
A shortest path in a graph with n vertices uses at most n − 1 edges (any longer walk would repeat a vertex and could be shortened). Bellman-Ford relaxes every edge in each pass, so after k passes every shortest path of length ≤ k is correct. After n − 1 passes, every possible shortest path is correct. Now do one more pass: if any distance still improves, the "path" got longer than n − 1 edges — the only way is a cycle whose sum of weights is negative, letting you shave off arbitrarily more by looping. The final loop finds and highlights any vertex on such a cycle so you can trace the arbitrage / routing loop. Complexity: O(|V| · |E|).