  By developing and applying a broad framework for rejection sampling using
auxiliary randomness, we provide an extension of the perfect sampling algorithm
of Fill (1998) to general chains on quite general state spaces, and describe
how use of bounding processes can ease computational burden. Along the way, we
unearth a simple connection between the Coupling From The Past (CFTP) algorithm
originated by Propp and Wilson (1996) and our extension of Fill's algorithm.
