I've attached a patch to detect fragments. There was a couple ideas bandied about; this seems the simplest. You use a link do:
You can include a version, otherwise it's unversioned. The only package I've tested it on is "flup", listed on http://pythonpaste.org/package_index.html -- in that case there's no competing or versioned listings in PyPI; if there was the entry would simply be ignored and would be useless.
PJE aso mentioned calling the packages things like flup_devel, so that it's a completely different package from flup. The problem, then, is that requirements can't be satisfied by the development package. It seems better to have some magic version string for development, that is neither more or less than other versions (or at least it depends on context -- it's the highest version number when using --develop [should that be implemented], and the lowest otherwise). But that's only useful given a --develop option to easy_install.py.