Hi all, New user of boost so I'd like to get some advice and make sure that I'm going down the right road. Currently, I've rolled my own DFS but it's buggy and hard to use so I'm thinking about switching to boost. Here's a picture of what I have. http://img.photobucket.com/albums/v642/rssmps/Untitled-1.jpg Initially, I have all the vertex and edges in a bucket. My task is using all the vertex/edge available and discover the connection that they belong to and then produce a connection summary. In words: 1) between 2 vertex, there can be multiple edges. In the end, I'll need to know what all of them are. However, I'm thinking it can be simplified during graph traversal to just using one edge. Once path is known, I can assign the remaining edges to the right connection. 2) undirected. However, edge definition in cases where multiedges exists maybe mixed. So one edge may be from A->B while another edge between A & B maybe defined as B->A. 3) need to handle a connection that has multiple inlet/outlet/cycle 4) As seen from the picture. The vertex/edge do not all belong to one big graph but rather a series of non-connected graphs. My current code works for all the straight forward connections but the one with the cycle is where I'm having trouble with. So is connected components the right tool to use? Thanks!