AutoMapper relación de muchos a muchos en la colección

Estoy tratando de asignar entidades en una colección a través de una tabla de muchos a muchos usando AutoMapper.

Mi modelo de dominio (Entity Framework) se ve así:

public class User
{
    public int UserID { get; set; }
    public string Name { get; set; }        
    public IList<UserCompany> UserCompanies { get; set; }
}

public class Company
{
    public int CompanyID { get; set; }
    public string Name { get; set; }
}

public class UserCompany
{
    public int UserCompanyID { get; set; }
    public int UserID { get; set; }
    public int CompanyID { get; set; }
}

Estoy tratando de asignar a una clase que se parece a esto:

public class CompanyDTO
{
    public int CompanyID { get; set; }
    public string Name { get; set; }
}

public class UserDTO
{
    public int UserID { get; set; }
    public string Name { get; set; }
    public IList<CompanyDTO> Companies { get; set; }
}

Mi configuración de mapeo actual se ve así:

Mapper.CreateMap<Company, CompanyDTO>(); //works no problem

Mapper.CreateMap<User, UserDTO>()
    .ForMember( dto => dto.Companies,
    opt => opt.MapFrom(x => Mapper.Map<IList<Company>, IList<CompanyDTO>>(x.UserCompanies.Select( y => y.Company ).ToList())));

Al afirmar que la configuración es válida, devuelve verdadero, pero cuando trato de asignar realmente un Usuario a un UserDTO, obtengo: La firma del cuerpo y la declaración en una implementación de método no coinciden.

Si uso AfterMap y muevo manualmente cada Compañía a la lista de Compañías, funcionará, pero parece que debería poder manejar esto dentro de crear mapa.

En mi consulta para obtener un solo usuario de la base de datos, estoy incluyendo la propiedad de navegación UserCompany.Company y puedo observar rápidamente y ver si se devuelve.