I am a newbie at LaTeX programming, so please be patient. :-)
I am writing a .sty file which I want to include a command \dan which is overloaded with three separate versions depending on whether called with zero, one or two arguments.
E.g. I want:
\dan
to generate
Full English
\dan{streaky}
or
\dan{back}
to generate
streaky Bacon
or
back Bacon
respectively, and
\dan{streaky}{fried}
to generate
streaky Bacon with fried Eggs.
"streaky", "fried" etc. are just examples, the users should be able to input any argument.
I have looked into the xparse package, but am finding the documentation inpenetrable. Please can you advise on how to code this?

\dan[sreaky,fried]far more preferable. Optional, so[]not{}and taking a comma separated list. – David Carlisle Mar 12 '12 at 22:53