Allow hooks to be skipped via @skip_prepare and @skip_finalize