If we were to adopt a better voting scheme (e.g., instant runoff or ranked) that eliminates the spoiler effect, we would have any number of viable parties. What we need is for people to be able to express their true preferences rather than the lesser of two evils. This is especially true in primaries where there are so many candidates. Why not let people indicate all the candidates that they'd be okay with? You'd get a result that a majority can actually support. Less partisanship would be a good thing.