/// <summary>
        /// Dijkstras algorithm that traverses the graph to find shortest path
        /// </summary>
        /// <param name="graph"> <see cref="Graph"/> instance. </param>
        /// <param name="startVertex"> The start <see cref="Vertex"/> of path to calculate minimum distance for. </param>
        /// <param name="endVertex"> The end <see cref="Vertex"/> of path to calculate minimum distance for. </param>
        /// <returns> The shortest (minimum cost) path from starting point to ending point. </returns>
        public static Pathway <T> Dijkstra <T>(this DirectedGraph <T> graph, Vertex <T> startVertex, Vertex <T> endVertex) where T : IEquatable <T>
        {
            var roadmap = Dijkstra(graph, startVertex);

            return(roadmap[endVertex]);
        }