It's interesting how, when a software program grows, it may not evolve exactly as it should.
I was working on my anti-spam program two nights ago, and I noticed it had this growth problem. When I first starting creating the program it was supposed to mark email messages w/ varying levels of suspicion, kind of a Bayesian algorithm. But, in practice, I found that this wan't really necessary; a message was either spam, or it wasn't.
However, as my program grew I ended up leaving code in it like this: