def with_prop(self, *args, **kwargs):
pp = pimms.merge(self._properties if self._properties else {}, *(args + (kwargs,)))<EOL>if pp is self._properties: return self<EOL>pp = pimms.ITable(pp, n=self.vertex_count)<EOL>return self if pp is self._properties else self.copy(_properties=pp)<EOL>
obj.with_prop(...) yields a duplicate of the given object with the given properties added to
  it. The properties may be specified as a sequence of mapping objects followed by any
  number of keyword arguments, all of which are merged into a single dict left-to-right
  before application.