A multi-state graph is defined as a graph where each edge is associated with a stochastic, rather than fixed, value. For cases where the stochastic value is discrete and represents a distance or time, an algorithm is presented which efficiently finds the single-source shortest paths and distances for all combinations of edge values. Infinite and negative weight values are allowed as long as there are no negative weight cycles. Efficiency is achieved by both leveraging dynamic programming and only finding solutions for the set of dominant states that correctly cover any possible edge metric setting for the graph. Although the method has exponential complexity in the worst case, some samples and example graphs are used to illustrate the savings over a brute-force combinatoric approach. Furthermore by leveraging some real-world assumptions, a pseudo-polynomial version is presented that can be applied to larger scale problems. The results of the method are then shown to enable the computation of most-likely shortest paths .