Maybe make this more explicit - secondary_preferred is what we are assuming slave_ok=true means.  Makes sense to me but spec doesn't say exactly what it should be.  Perhaps documentation of our interpretation would be sufficient.