Allowed Uri classes to use a custom session if it's provided

It works and it includes tests and documentation :)
Good good! These should've been ranges in the first place