You have already been more than hospitable, and you are being taken advantage of.
In my household, the Pioneer Rule is always in effect: if you don't work, you don't eat. Seriously. There is always some way to contribute.
In your op you say this person (or is it more than one?) was originally going to stay three weeks. If you explicitly agreed to three weeks, I'd say try to stick it out for that 21 days but make it clear that day 22 was not up for negotiation. Being asked to try, you've tried and it's isn't working for you. No harm, no foul, the situation just didn't work out. If there was never any specific timeline established, I would establish one. It is your right as one of the contributing members of the household. If you're feeling generous, 14 days should be sufficient.
On the other hand, if you're pissed off that your home has been infested by slacker/s, you might also consider pulling on your butt-kicking boots and putting them to work. That's what I would do. Honestly, if it were me, I would already be soaking in a hot tub working out the knots I had gotten in my legs by kicking his/her/their sorry ass/es up and down both sides of my street to make damn sure s/he understood that such triflin'-ass ways were not welcome in any part of my house, my life, my any-dam-thing! And then I would have a "frank and open" discussion with my lover on how these situations can best be avoided in the future. But maybe that's just me . . .