An Algorithm for Graph Isomorphism