I have found a plugin that after a small modification allows all logged in users (of level 0 and up) to read private posts and private pages (by using direct url).
This is possible by adding a filter to user_has_cap. The filter just adds the read_private_posts and read_private_pages capabilities, if certain criteria are met (ie. user logged in etc. etc.).
However, wp_list_pages still does not show any private pages.
What caps do I need to add and into what wp function?