How to extend Bellman-Ford to solve the $k$ shortest path routing?
It seems that we can use the following generalization of Bellman-Ford. Let's store a set $Pt_{v}$ of $k$ numbers for each vertex $v$ of graph $G$ which initially are all equal to $+\infty$. The only exception is a vertex $s$ (the vertex from which all paths are calculated). Its set $Pt_{s}$ should be initialized to a single value of $0$ and $k-1$ values of $+\infty$.

Now let's run $k \cdot |V|$ iterations of relaxations (instead of $|V| - 1$ iterations like in usual Bellman-Ford) and try to maintain the following invariant. After $i$-s iteration for each vertex $v$ the $j$-s least number from $Pt_{v}$ should be not greater than the length of the $j$-s shortest path from $s$ to $v$ containing not more than $i$ edges. This invariant will be maintained by means of proper edge relaxations. For each $(u, v)$ edge relaxation we should assign $Pt_{v}$ to a set of $k$ least numbers from a set $Pt_{v} \cup \{x + weight(u, v)|x\in Pt_{u}\}$.

So after all $|V|-1$ iterations each set $Pt_{v}$ will contain $k$ shortest paths from $s$ to $v$. The proof of correctness for this algorithm should be literally the same as for usual Bellman-Ford.

This is a loopy algorithm. Its time complexity is $O(|V|\cdot|E|\cdot k^2)$ (because single edge relaxation can be done in $O(k)$ time using a selection algorithm).