Working version supporting by-condition params, sticky choice, and negative epsilon.