All reasonably expected cases must be covered. Simplicity is not allowed to overly reduce completeness. I believe most people would agree that these are good characteristics. The design must be simple, both in implementation and interface. It is more important for the implementation to be simple than the interface.
Simplicity is the most important consideration in a design.
It is slightly better to be simple than correct. The design must not be overly inconsistent. Consistency can be sacrificed for simplicity in some cases, but it is better to drop those parts of the design that deal with less common circumstances than to introduce either implementational complexity or inconsistency. All reasonably expected cases should be covered. Completeness can be sacrificed in favor of any other quality.