AutoMapper muitos para muitos relacionamento em coleção

Eu estou tentando mapear entidades em uma coleção através de uma tabela muitos para muitos usando o AutoMapper.

Meu modelo de domínio (Entity Framework) se parece com isso:

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; }
}

Estou tentando mapear para uma classe que se parece com isso:

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; }
}

Minha configuração de mapeamento atual é assim:

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())));

Afirmar que a configuração é válida retorna true, mas quando tento realmente mapear um User para um UserDTO, recebo: A assinatura do corpo e a declaração em uma implementação de método não correspondem.

Se eu usar AfterMap e mover manualmente cada empresa para a lista Empresas, ela funcionará, mas parece que eu deveria ser capaz de lidar com isso dentro do mapa de criação.

Na minha consulta para obter um único usuário do banco de dados estou incluindo a propriedade de navegação UserCompany.Company e posso quickwatch e ver que está sendo retornado.