A single entry point to rendering all visualizations in the visual
        pipeline. The rendering for the output depends on the backend context,
        but for path based renderings (e.g. saving to a file), specify a
        directory and extension to compse an outpath to save each
        visualization (file names will be based on the  named step).

        Parameters
        ----------
        outdir : path
            The directory to save visualizations to.

        ext : string, default = ".pdf"
            The extension of the file to save the visualization to.

        kwargs : dict
            Keyword arguments to pass to the ``poof()`` method of all steps.

def poof(self, outdir=None, ext=".pdf", **kwargs):
        """
        A single entry point to rendering all visualizations in the visual
        pipeline. The rendering for the output depends on the backend context,
        but for path based renderings (e.g. saving to a file), specify a
        directory and extension to compse an outpath to save each
        visualization (file names will be based on the  named step).

        Parameters
        ----------
        outdir : path
            The directory to save visualizations to.

        ext : string, default = ".pdf"
            The extension of the file to save the visualization to.

        kwargs : dict
            Keyword arguments to pass to the ``poof()`` method of all steps.
        """
        for name, step in self.visual_steps.items():
            if outdir is not None:
                outpath = path.join(outdir, slugify(name) + ext)
            else:
                outpath = None

            step.poof(outpath=outpath, **kwargs)