docs: def render(self, container, rerender=False):
          """Flow the flowables into the containers that have been added to this
          chain."""
          if rerender:
              container.clear()
              if not self._rerendering:
                  # restore saved state on this chain's 1st container on this page
                  self._state = copy(self._fresh_page_state)
                  self._rerendering = True
          try:
              self.done = False
              self.flowables.flow(container, last_descender=None,
                                  state=self._state)
              # all flowables have been rendered
              if container == self.last_container:
                  self._init_state()    # reset state for the next rendering loop
              self.done = True
          except PageBreakException as exc:
              self._state = exc.flowable_state
              self._fresh_page_state = copy(self._state)
              raise
          except EndOfContainer as e:
              self._state = e.flowable_state
              if container == self.last_container:
                  # save state for when ReflowRequired occurs
                  self._fresh_page_state = copy(self._state)
          except ReflowRequired:
              self._rerendering = False
              raise