I have the same issue. I want certain pages to be accessible only to a given role while the rest of the site is public. For instance I want Role A to access page A1 and A2 (in addition to the public site of course). I want Role B to access page B1 and B2 but not A1 or A2. Of course Role B should also have access to the public pages.
Last I want to configure media files to be restricted when linked on the page. For example I may have a link to a PDF on page A1. I cannot use short codes because that does not prevent access to that file if someone has a link to the file.