There was some bad recursion introduced recently that caused crashes when a Material node is the same material as the material itself (e.g., if Material.001 has a node with Material.001). This commit attempt to correct this by keeping track of the material at the root of the node tree, and doesn't recurse further if it encounters it again within the nodetree. Joshua, please review!