withSessionWith added

It seemed an obvious function to add and it was trivial to implement, so it shouldn't cause any problems. The name is a but funny, but actually it is the name that makes sense.