AKA Quillen model category (ncatlab)
Introduction
A model category is a category with three classes of morphisms:
Mappings in Set
In order to get some sort of intuitive understanding it may help to compare with the following mappings in set:
 bijections
 surjections
 inclusions
These have some interesting properties (wiki):
 Mappings/functions can be decomposed into surjections and inclusions. So we can define mappings as a sequence of surjections and inclusions.
 A bijection is both a surjection and an inclusion.
 A bijection is invertible onetoone correspondence (permutation).
 An inclusion is like a onetoone correspondence with possible additional elements in the codomain.
Mappings and Subsets
Inclusions give us a subset structure. The combination of subobjects and functions from and to them gives us some interesting issues.
For example, in some programming languages such, as Java, we can have functions from and to subobjects (that is an object that has been extended):
CovarianceGiven an object A which has been extended to X. So the map i:A>X is injective. Any function out of X can also be used out of A because we know how all the elements of A are to be treated because they are also elements of X. 
ContravarianceAny function in to A can also be used in to X because we know how all the elements of A exist in X. 
Mappings in Model Categories
Having looked at the above structures in set we can now look at related structures in model categories.
The weak equivalences are like ‘homotopy equivalences’ that is shapes that can be deformed into each other. They are 'weak' because they are spaces that can be represented by simplicial sets, that is there are no awkward singularities or things like that which may be possible in more general case (see: Warsaw circle  ncatlab).
The fibrations are Serre fibrations and play the role of ‘nice surjections’. For a general discussion about fibrations see the page here.
The cofibrations play the role of ‘nice inclusions’.
Retractions
A retraction is a surjective map that is continuous. For instance we can continuously reduce a band down to a circle: 
In general a map ƒ: M1 > M2 is continuous if and only if the preimage of every open set is open. 
Left Lifting Property
All arrows (mappings) are continuous. If the square commutes then the dotted arrow (lift) must be unique. Where:

So if the blue circles in E are equal at one point, they are equal everywhere (we cant have a tear in topology.
Here we see, although B is a circle here, p^{1}(b) does not need to be the same shape. 
Path Lifting 
The lifted paths in E must either agree at every point or at no points, lift is unique, we cant have a tear in the topology. So the diagram on the right is not valid. 
Can we apply this to higher dimensional spaces and simplicial complexes? 
It doesn't seem to work for finite lines (edges) in a complex (graph in this case). E is not a topological space, mapping of edges onto singe edge doesn't seem to be a fibration and picking out a point (node) doesn't seem to identify a single edge. 
What if we restrict to the inside of a single simplex? Here the triangle 'E' is filled in so two of the edges can continuously merge together. It still doesn't seem to work. It seems that the fibration is not a surjection, perhaps we need to think of it more like a projection. 
see: https://en.wikipedia.org/wiki/Fibration_of_simplicial_sets
Simplicial Set ExampleHere we have two triangles 1 and 2 with a common edge 3. The relationship between triangles, lines (edges) and points (vertex) is many to many. For example, edge 3 is contained in multiple trianges and each triangle has multiple edges. 
If we were representing many:many relationships between tables in a relational database we insert tables between them with 1:many relationships out of them. 
The new table 'TriangleEdge' is redrawn here a bit so both the 1:many relations coming out of it look like projections. The same for table 'EdgeVertex' 
From this we can recalculate the tables so the arrows go in one direction: triangle>edge>vertex. 
Kan Fibration
Kan fibrations are the fibrations of the standard model category structure on simplicial sets (see wiki)
A Kan fibration need not be a surjection (ncatlib)
x must exist where:

Example where n=2 (triangle  two dimensional). 
We need the outer square to commute so that we can't have a situation like this. 
Example where n=1 (line  one dimensional). 
Continuation of Simplicial Set ExampleIn the example above the two triangles 1 and 2 were 'glued' together with a common edge 3. 
What if we now 'glue' together two more edges, say 1 and 4? 
This would force edge 2 to equal edge 5 and effectively make the two triangles equal. Can we generalise this to determine how many faces need to be glued together to make two simplicies equal? 
Fibration and Cofibration
Homotopy has the concept of:
 a fibration which has the lifting property.
 a cofibration which has the extension property extension is dual to lift.
Fibration 
Cofibration (Extension Property) 


Homotopy  Fibration 
Cofibration (see page here) 
Combinatorics 
Kan fibration (see page here) 
Kan extension (see page here) 
Kan fibrations are combinatorial analogs of Serre fibrations of topological spaces.
(ncatlab).
Extension is dual to lift.
Fibrations and Cofibrations are used in model theory.