Dijkstra's Algorithm

Hi, first time contributor here. I wrote up a straightforward program to solve Dijkstra's algorithm (http://rosettacode.org/wiki/Dijkstra%27s_algorithm). 

Do let me know if there are any issues :)
you could also do (just a matter of taste, if you prefer your version it's perfectly fine too):

    fn get_or_insert_vertex(&mut self, vertex: &'a str) -> Node {
        self.vertex_index(vertex)
            .unwrap_or_else( || {
                    let new_str = vertex;
                    self.adj_list.push(Vec::new());
                    self.vertices.push(new_str);
                    self.vertices.len() - 1
            })
    }