ignore .DS_Store
read from file, save nodes to lists
find nodes with exactly one input and one output edge
connect neighboring nodes for non-loop cases
handle loop case - remove both edges
remove duplicates and loop through eliminating nodes, if necessary
write output to file
cleanup debugging print statements