Bellman-Ford can handle constrained path problems by controlling the number of iterations. Each iteration extends paths by one edge, letting you enforce maximum path length. Two-array relaxation prevents mixing path lengths within a single iteration. This is temporal separation: reading from the previous state and writing to the current state keeps each iteration independent.
This technique generalizes to any problem where you need shortest paths with at most k edges. The number of iterations directly controls the maximum path length.