def register(self, name, coords):
if not isinstance(coords, Mesh):<EOL><INDENT>coords = Mesh(self.tess, coords)<EOL><DEDENT>elif name in self.registrations and not self.registrations.is_lazy(name):<EOL><INDENT>if self.registrations[name] is coords:<EOL><INDENT>return self<EOL><DEDENT><DEDENT>return self.copy(_registrations=self.registrations.set(name, coords))<EOL>
topology.register(name, coordinates) returns a new topology identical to topo that 
additionally contains the new registration given by name and coordinates. If the argument
coordinates is in fact a Mesh and this mesh is already in the topology with the given name
then topology itself is returned.