WiFi network number and SSID

I have the official Arduino WiFi shield and an Uno R3. What I have in mind is a mobile device which is able to roam around access points, reasonably transparently. Getting along with it very well generally but ran into a bit of a hurdle.

When I scan for networks, I can find details of the various access points in range, by passing an index to WiFi.SSID(i) etc. However, WiFi.begin(ssid, pass) takes the SSID as a string argument. So, where I have two APs broadcasting the same SSID, I would like to be able to choose which access point the Arduino connects to.

Similarly, I would like to be able to find out the current signal strength (RSSI) of the access point I am currently connected to.

Having the connection associated by SSID and the information by index, doesn't seem too sensible to me. So is there any possibility of being able to connect by the index number, instead of (just) the SSID string? I had a brief look at the library code, but don't want to dig into that unless I know what I am trying to achieve is possible.

Looking in the library sources, there are functions for RSSI and encryption type:

char* WiFiClass::SSID(uint8_t networkItem)
{   return WiFiDrv::getSSIDNetoworks(networkItem); }

int32_t WiFiClass::RSSI(uint8_t networkItem) 
{   return WiFiDrv::getRSSINetoworks(networkItem); }

uint8_t WiFiClass::encryptionType(uint8_t networkItem)
{    return WiFiDrv::getEncTypeNetowrks(networkItem); }

There doesn't seem to be a way to connect to a network at a specified base station (BSSID).