conditional expire_fragment

I just recently implemented caching on my site, and i have a sweeper
attached to my :update action, to clear my index (which shows top ranked
items). Is it possible to first check to see if there is a change, and
only expire the cache when appropriate??

my index action looks like this:

def index
     unless read_fragment({:page => params[:page] || 1})
        @new_phrases = Phrase.find_top(params[:page]||1)

I want my sweeper action to look something like this:

  def expire_cache(phrase)
     if read_fragment({:action => 'index', :page => 1}) ==
         1.upto(5) {|i| expire_fragment(:action => 'index', :page => i
) }

Rails 2.1.0, ruby 1.8.6. Is this type of behavior possible or reasonable
to implement??