I process onions and garlic lightly, then saute them in olive oil until they are transparent in a good-sized pot on medium. (I suppose you could chop these things, but why? Also, by "good-sized" I mean a pot that will contain all of the escarole leaves).
Add sausage and cook thoroughly, but not overly. Turn up the heat a bit.
When sausage is looking about done, add tomato chopped to your liking. I chop it small.
Add the cleaned and rinsed escarole. Sometimes Escarole heads can be really big or pretty puny. Since 2 puny heads (~size of a larger grapefruit) = 1 really big head (~size of a football), opt for whatever combination you can get. To clean it, I just take off a bunch of leaves, rinse them under cold water, snap them in half, and throw them in the pot. Don't worry about water getting into the pot. Let the escarole cook all the way down to the point you see the lines at the base of the leaf. You'll see what I mean. Don't undercook it. You'll taste it and it's not a good taste. At this point I rely on the taste test to know when it's done.
Once escarole is sufficiently wilted, add your canellini beans. Of course, make sure they are sufficiently rinsed then drained. Heat them thoroughly.
Add chicken stock, more or less depending on how soupy you want it. The broth is so good that you may want to make it soupy, which I did the second time around!
Let it simmer until the outer layer sheds off of the canellini beans. Serve with some warm crusty bread (I use the whole grain because it's SBD-friendly) and enjoy!